package net.chanibal.hala.client;



import java.util.Date;

import com.google.gwt.user.client.History;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException;
import com.google.gwt.user.client.rpc.InvocationException;
import com.google.gwt.user.client.rpc.SerializableException;


public class AddImprezyForm extends AbstractForm implements AsyncCallback {

	TextField tytul = new TextField("Tytuł",".+");
	TextField koszt = new TextField("Cena za wstęp","[1-9][0-9]*([.][0-9]+)?");
	TextField ilemiejsc = new TextField("Ilosc Miejsc","[1-9][0-9]*");
	DataTableField terminy = new DataTableField("Terminy");
	
	public AddImprezyForm() {
		super("Dodaj");
		addField(tytul);
		addField(koszt);
		addField(ilemiejsc);
		addField(terminy);	
	}


	public void doRequest() 
	{
		Server.Util.getInstance().doAddImpreza(
				tytul.getText(),
				Float.valueOf(koszt.getText()),
				Integer.valueOf(ilemiejsc.getText()),
				terminy.getTerminy(),
				this);
				
	}


	public void onFailure(Throwable caught) {
	     try {
		       throw caught;
	     } catch (IncompatibleRemoteServiceException e) {
	       // this client is not compatible with the server; cleanup and refresh the 
	       // browser
	    	 setError(e.toString());
	     } catch (InvocationException e) {
	       // the call didn't complete cleanly
	    	 setError("Błąd połączenia:"+e.toString());
	     } catch (SerializableException e) {
	       // one of the 'throws' from the original method
	    	 setError(e.getMessage());
	     } catch (Throwable e) {
	       // last resort -- a very unexpected exception
	    	 setError(e.getLocalizedMessage());
	     }
	}


	public void onSuccess(Object result) {
		 History.onHistoryChanged("Imprezy");
	}

}
